1. Field of the Invention
The present invention relates to a prediction method, a generation method, and a storage medium, and particularly to a technique for illuminating computation in 3D scene rendering.
2. Description of the Related Art
3DCG (Three-Dimensional Computer Graphics) is used as a visualization expression method in various fields not limited to games and movies. In the technical field of this kind of 3DCG generation, in recent years, various methods have been proposed for more realistic depiction or for high quality rendering expression.
As a method of expression for making more realistic depiction in 3DCG, the method of reflecting effects due to Global Illumination exists. In this method, for one rendering object, by not only rendering shading that occurs directly based on defined illumination (a light source), but also rendering shading considering indirect illumination that appears due the light source reflecting in another rendering object, a rendering expression having more realism can be provided.
On the other hand, because processing for global illumination employs such things as a ray tracing method, which traces the complicated propagation of a light ray, in general the amount of computation is large, and so usage for a scene for which real-time screen rendering is required, such as for a game, is difficult. In contrast to this, there are methods that easily improve the realism of 3DCG simply by generating a light map in which indirect illumination of a 3D scene to be rendered is pre-computed and applying the light map in the rendering processing as a texture, in order to optimize rendering processing in which indirect illumination is reflected.
Note, this kind of light map is something generated by computing global illumination, and time is required for the generation. Because the generation of the light map is performed by integrating (rendering equation) the effects (the diffuse reflections, the specular reflections, etc.) due to virtual light sources that occur due to incident light input into the target 3D scene reaching a surface of a rendering object, for various ray directions in a region on a rendering object to which the texels of the light map are applied, processing time increases in accordance with the number of rays considered, the number of ray directions, and so on. In Yusuke Tokuyoshi et al., “Fast Global Illumination Baking via Ray-Bundles” (SIGGRAPH Asia 2011 Technical Sketches), a method is disclosed in which processing time is reduced by reflections between rendering objects lined up in a depth direction on the same ray being optimized on a GPU by collecting them in a linked list in the scene analysis for one ray direction of light map generation.
However, in the generation of the light map using the Tokuyoshi method, the amount of information differs depending on the sampling ray direction. For this reason, it was necessary to adjust so that memory did not overflow by allocating an excessive region of memory beforehand for ray-bundle generation processing, or by reducing the resolution (the number of rays) of the ray-bundles generated beforehand within a limited region of memory so that the processing was possible.
In contrast to this, in Nicolas Thibieroz, “Order-Independent Transparency using Per-Pixel Linked Lists” of GPU Pro 2, A K Peters, 2011, p. 409-431, a method in which a two-dimensional region of a scene in a projection of a sampling ray direction is divided into grid tiles having the same size, and generating a ray-bundle for each tile has been proposed. With this, because ray-bundles are generated for the tiles which are portions of the region and not the entire scene, memory usage can be reduced.
However, while the memory usage was reduced relatively in the scene analysis for the light map generation of the method of Thibieroz and the method of Tokuyoshi, the absolute memory usage was not predicted. In other words, neither of the documents predicted the memory usage required for ray-bundle generation. Consequently, optimization by ideal usage of memory in the ray-bundle generation processing was not realized.